﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DesignPatternDemoCApp.Creational.AbstractFactoryPattern
{
    /// <summary>
    /// 抽象工厂AbstractFactory
    /// </summary>
    public abstract class AbstractFactory
    {
        // 抽象工厂提供创建一系列产品的接口，这里作为例子，只给出了房顶、地板、窗户和房门创建接口

        /// <summary>
        /// 创建房顶
        /// </summary>
        /// <returns></returns>
        public abstract Roof CreateRoof();
        /// <summary>
        /// 创建地板
        /// </summary>
        /// <returns></returns>
        public abstract Floor CreateFloor();
        /// <summary>
        /// 创建窗户
        /// </summary>
        /// <returns></returns>
        public abstract Window CreateWindow();
        /// <summary>
        /// 创建门
        /// </summary>
        /// <returns></returns>
        public abstract Door CreateDoor();
    }
}
